package effective.java.chapter1;

/**
 * 基本类型和包装类型的自动装箱拆箱性能比较
 * 时间比较 Long: 6042ms, long: 515ms
 * 由于Long每次增加一个long都需要构造一个Long的实例所以消耗的时间非常多
 * 总结：优先使用基本类型而不是装箱的基本类型，也要注意无意识的自动装箱。
 * 当你应该重用一个现有的对象时，不要创建一个新的对象
 *
 * @author kkmystery
 * @version 1.0 2021/7/7
 * @since 1.0.0
 */
public class WrapperLong {

    public static void main(String[] args) {
        LongSum();
        longSum();
    }

    /**
     * Long 类型
     */
    public static Long LongSum() {
        long begin = System.currentTimeMillis();
        Long sum = 0L;
        for (long i = 0; i<= Integer.MAX_VALUE; i++) {
            sum += i;
        }
        long end = System.currentTimeMillis();
        System.out.println(end - begin);
        return sum;
    }

    /**
     * long 类型
     */
    public static long longSum() {
        long begin = System.currentTimeMillis();
        long sum = 0L;
        for (long i = 0; i<= Integer.MAX_VALUE; i++) {
            sum += i;
        }
        long end = System.currentTimeMillis();
        System.out.println(end - begin);
        return sum;
    }
}
